The increasing popularity of businesses offering digital communication services (e.g. web services) have led to the development of robust, sophisticated systems capable of providing functionality for a diverse host of transactions. These systems are often conceived across one or more layers, typically including some combination of logical, hardware and process layers. Furthermore, these systems are frequently implemented as a composite of computerized hardware devices distributed across great distances—both logically and physically—all working in concert. Accordingly, the difficulty in designing these multi-layered, distributed systems to accurately and consistently achieve business objectives has grown to reflect the intricacy of meeting expanding demands while managing costs attributed to advancing system components.
The field of technology architecture has developed in response to address this need. A principle challenge in this particular field of architecture is to accurately capture a given set of objectives with one or more suitable business processes, and to implement the processes with the underlying physical infrastructure necessary to execute them successfully and efficiently. In large and complex systems, a single system design may include views of each layer of the system, e.g., the arrangement of system components, the processes performed by the system in its execution, and the actual system components used. These systems are also referred to as “composite application systems.”
As mentioned, a composite application system may be designed for one or more purposes and/or objectives. These purposes (and/or objectives) commonly include, for example, performing one or more actions, achieving one or more system goals, observing particular specifications, meeting certain application requirements, or some combination thereof. A design process typically includes ideating a solution for performing the one or more design purposes. An ideated solution represents an approach and/or design methodology to potentially achieve (or most reasonably approximate) the one or more purposes (and/or objectives) intended for the composite application system.
Naturally, the design process may involve the effort of multiple collaborators, each with their own areas of expertise. Unfortunately, misalignment between collaborators may occur, either due to conflicting interests, budget concerns or simple miscommunication. Misalignment between a business model and its underlying infrastructure in a design can lead to system inefficiency, sub-optimal performance, or worse, an abject failure to meet business goals. Valuable time may be spent debugging, communicating with other collaborators, and re-designing the system to correct misalignments. This in turn may lead to a lack of predictability in both cost and performance in the system designed. In addition, the economic loss due to inefficiency compounded over the life of the system, or due to restructuring and re-provisioning system components can be enormous.
Misalignment in business system designs may result in poorly provisioned (either over-provisioned or under-provisioned) resources. Over-provisioning occurs when a system is designed with components having greater resources than what is actually needed to achieve application requirements, often at a higher cost than other suitable components and resulting in a waste of financial resources. In design projects with strict or limited budgets, over-provisioning one component may lead to budgetary restraints that restrict provisioning in other areas of the system to cheaper, less effective components that fail to operate at the level required by the design (under provisioning). Both over provisioning as well as under provisioning may also arise due to miscommunication of business objectives or a misunderstanding of system components.
Further amplifying the difficulty present in the current practice of technology architecture is the lack of both direct tool support and a unified standard of design. A lack of a direct tool and unified standard set may lead to collaborative misalignment, which in turn may result in inconsistent design quality, incompatible design formats and conflicting representations between and among regions, firms, individuals, or even design projects. Within a typical design process, contributors to the design may utilize a host of existing applications and/or applications from various existing toolsets. Examples include applications specifically engineered for word processing, computer aided diagramming, email, spreadsheets, software configuration management and file transfer protocol.
An example of collaborative misalignment may include a representation of one component in a system design expressed by one collaborator as text in a document, whereas another collaborator may choose to represent another component as a diagram. Establishing a standard framework for every design project, and/or merging and conforming inconsistent representations may take up valuable time and coordinating effort. Furthermore, there is currently no well known or popular application that supports explicitly visualizing relationships across components and design views.
Furthermore, in systems with multiple collaborators where duplicates of the design are distributed among the collaborators, it may be difficult to identify the most current version of the system design. One or more of the collaborators may implement changes on locally stored copies, whereby subsequent manual merging of the modifications may be difficult and time-consuming, and automated merging of distributed, locally stored copies may risk losing some or all of the modifications.
Finally, a lack of standardized tool support also presents difficulties for efficiently reusing previous work products, since the lack of a unified standard often results in each system being conceived according to ad hoc, non-standard designs. While an experienced system designer may have a backlog of stored work that the designer may use as a template, the lack of a unified standard or tool may limit references to the designer's individual work. New and less experienced designers may lack access to such resources.